Graceful Termination
アプリケーションが実行中のタスクを完了し、リソースを解放し、データの整合性を保ちながら終了すること。
例外
発生時や
シグナル
ハンドリング時に、アプリケーションがスムーズに終了することで、リクエストの中断やデータの損失を最小限に抑えることができる。
Kubernetes
や
Spring Boot
などのドキュメントでは、
{terminate, shutdown} {gracefully, with grace}
などといった形で表現されている。
Kubernetes best practices: terminating with grace - Google Cloud
Graceful Shutdown in Spring Boot: Ensuring Smooth Application Termination
意識すること
リソースを適切に解放する。
ファイルハンドル
データベース
接続など
メモリリーク
を防ぐ
データベースのトランザクション
を
ロールバック
する
データ整合性を保つ
アプリケーションの状態を適切に保存する
セッションデータ
キャッシュ
など
これらを再起動時に復元できるようにする。